Guida all'hacking della grafica nel processo di traduzione di ROM.
versione 0.7 25/10/2001
Dark Schneider 2001
Introduzione
Con questa guida mi propongo di affrontare parte degli aspetti che
riguardano l'hacking grafico nelle rom. Non sono certamente il più esperto hacker in questo campo, ma credo di aver accumulato abbastanza
esperienza (come in d&d :) per poter scrivere un documento rivolto soprattutto
ai newbies.
Obiettivi
Cercherò di spiegare in maniera (spero) chiara come aggiungere lettere
accentate, modificare il font, oppure modificare un'immagine.
Visto che la guida è stata in generale abbastanza apprezzata, ho aggiunto un'appendice sui font 8X16 (v. 0.7).
Requisiti
Un pò di pazienza, soprattutto se volete cambiare totalmente il font di un gioco, oppure modificarne il titolo iniziale.
Un pò di abilità nel disegnare con il mouse (tranquilli si parla di tiles di pochissimi pixel ^_^)
Tile Layer Pro 1.1, recuperabile su www.clomax.emuita.it
La rom che volete modificare :)
Piccola guida a Tile Layer Pro 1.1
TLP è secondo me il miglior programma per modificare la grafica nelle
rom. Innanzitutto offre una GUI su Windows, mentre la maggior parte dei sui predecessori/concorrenti sono in ambiente DOS. La sua compatibilità,
inoltre, è immensa: infatti supporta praticamente tutti i sistemi, tra i quali anche il recentissimo Game Boy Advance.
Lanciamo dunque il TLP e apriamo una rom qualsiasi. Vi appariranno quattro finestre, che rappresentano:
La più grande, sulla sinistra, è la grafica della vostra rom :) divisa in tiles di 8X8 pixel ciascuna.
Tile Arranger (in alto a destra), è un utilissimo spazio che vi permette di affiancare le tiles in modo da ottenere un'immagine con un senso (raramente troverete un'immagine visibile e ordinata da subito). Importante il sapere che questa finestra serve solo per visualizzare in ordine, la rom non verrà modificata in alcun modo.
Tile Editor (centrale a destra), è lo spazio in cui modificherete le tiles. Rappresenta una tile ingrandita di parecchio.
Palette Editor
(in basso a sinistra), è dove andrete a prendere i colori
del pennello con cui disegnate le tiles.
§1: Trovare il font nella ROM (e anche la table)
Questo è un sistema utile anche per completare le tables di cui magari
non avete ancora trovato i simboli (?, !, ecc), oppure di cui avete solo una lettera :)
In questo paragrafo userò come esempio la rom di Final Fantasy 3 NES, che sto tutt'ora traducendo.
Apriamo allora la rom, e se avete letto la guida sopra saprete cosa rappresentano
quelle finestre. Se non lo avete fatto, beh fatelo =) Scorrete la finestra della rom in verticale
finché non trovate un gruppo di
simboli che vi possono almeno ricordare delle lettere. Scorretela lentamente, perché
è facile non trovarle se si ha fretta.
A questo punto ci sono tre possibilità:
"Non trovo niente che possa somigliare a delle lettere!". Uhm, qui le mie capacità non arrivano. Probabilmente la rom è di quelle cattive con la grafica compressa. Questa guida non copre questo argomento.
"Ho trovato dei segnacci che potrebbero sembrare lettere in ordine
alfabetico!". Bene, qui posso aiutare. Premi il tasto "1" (che serve a cambiare formato della rom,
ossia viene visualizzata nel modo in cui lo fanno le varie console), finché
non
vedi quei "segnacci" diventare lettere. Non so se sia regola generale, ma le
rom del SNES che ho provato venivano visualizzate correttamente solo in formato
Game Boy. Se non cambia niente, beh mi sa che ti conviene andare al punto 1.
(e quindi uscire dall'algoritmo :) oppure cambiare rom. Se invece ci sei quasi, ma non sei ancora soddisfatto, prova a premere i tasti
"+" e "-" per modificare un pochino l'offset e magari avrai un risultato migliore.
GOTO 3.
"Ho trovato le lettere! Belline!". E' da qui che inizia la "lezione".
Allora, prima di tutto è necessario avere almeno un carattere della table. Non sono tenuto a spiegare come cercare la table in una rom, argomento ampiamente trattato nella guida dei Sadnes, ma voglio aggiungere soltanto un'appendice alla suddetta guida. Infatti, nel caso di NES e Sega Master System/Game Gear, è possibile trovare la table tramite due emulatori: il NESticle per il NES e il Meka per SMS/GG.
NESticle: premete F2 durante il gioco e si aprirà una finestra con titolo Pattern Tables; essa contiene due aree (che non sono proprio distinte), una a destra e una a sinistra. La prima contiene gli sprites, ossia gli oggetti che si muovono sullo schermo e che comunque non fanno parte dello sfondo statico, mentre la seconda contiene appunto lo sfondo. In una delle due regioni, se state trattando una rom "normale", dovreste trovare delle lettere. Cliccando su ogni lettera riceverete in cambio una finestrina con la lettera ingrandita e il relativo codice esadecimale.
Meka: il procedimento è lo stesso, cliccate sul menù Tools->Tile Viewer. Otterrete una finestra simile a quella del NESticle, ma con i tile dello sfondo in alto e gli sprite in basso.
Comunque, mettiamo caso che abbiate un solo codice della table, come ad esempio a=A4. Guardate questa immagine:
Ovviamente non è necessario farsi questo schema per ogni table :) comunque si può facilmente intuire che se a=A4, allora Z=A3, b=A5 e così via. In questo modo si può anche trovare il codice delle immaginette che negli RPG si trovano a sinistra del nome di un'arma o di un oggetto.
§2: Aggiungere le lettere accentate
Allora, mettiamo caso che la prima cosa che volete fare sia quella di aggiungere
le lettere accentate (à,è,ì,ò,ù). Sono molto utili, perché permettono di risparmiare
molto spazio nella traduzione. Se non ci credete, provate a mettere le lettere con l'accento (a',e', ecc) al posto di quelle già accentate in questo documento
e fate una statistica.
Aprite la rom e andate al punto in cui siete riusciti a trovare il font. In genere
i traduttori dal giapponese all'inglese usano delle tile per le abbreviazioni, come ad esempio 's,'d,'r, ecc. Questo è il caso di
FF3, come si vede dall'immagine in basso. Oppure (se siete molto fortunati) potrebbero aver lasciato alcuni caratteri giapponesi, che potrete
usare liberamente.
Proviamo a sostituire la "'d" con "à". Clicchiamo sul tile che volete modificare, e comparirà nella finestrella Tile Editor, ingrandito. Scegliamo nella Palette i colori del font (vi consiglio di utilizzare quelli che c'erano già). Si può associare un colore al tasto sinistro (nel mio caso il bianco), e uno al tasto destro (nel mio caso l'azzurro). E ora modifichiamo la lettera; potremmo disegnare la "à" interamente, ma perché perdere tutto questo tempo, se possiamo risparmiarlo? Trasciniamo la "a" sul tile della "'d", e poi modifichiamo quest'ultima, aggiungendo l'accento. Facile, no? Le immagini sotto dovrebbero chiarire.
==>
==>
Ripetiamo lo stesso procedimento per le altre lettere. Io ho sfruttato tutti gli spazi possibili per inserire anche alcune sillabe. Non in tutte le rom si trovano le tile di "il", "ll", "li", ecc, e vi consiglio di aggiungerle se ne avete la possibilità.
A questo punto ci potremmo dilettare anche a...
§3: Cambiare il font
Non so se sia necessario un paragrafo intero per spiegare questa parte, poiché tutte le nozioni le avete imparate nel §2. Comunque, vado subito al nocciolo: per cambiare il font di una rom è necessario ridisegnarsi tutte le lettere a mano, oppure prenderle da altre rom. Io sinceramente preferisco il primo sistema, perché le rom usano palette diverse tra loro, e quindi è comunque necessario un certo impegno manuale. Prendo stavolta come esempio la rom di SD Gundam Winner's History per Game Gear, di cui per ora ho soltanto cambiato appunto il font.
Come si vede dall'immagine, il font utilizzato dall'autore della traduzione dal giapponese, è a dir poco orribile...ci sono alcune lettere più grandi, altre più piccole. Allora ho deciso di utilizzare lo stesso font di FF3, ed ecco il risultato:
Un pò meglio, no? :) Notate nell'immagine precedente quello che dicevo nel §2, cioè la presenza di caratteri giapponesi. Quelli sono modificabili tranquillamente a vostro piacimento, poiché non verranno mai più utilizzati. In questo caso inserirò lì le mie lettere accentate, il "l'", e tante altre cose utili (sempre se deciderò di continuare a tradurre Gundam).
§4: Modificare un'immagine
Siamo dunque arrivati alla modifica di un'immagine (che in generale occupa più di un tile). Prenderò in esempio il solito FF3, di cui cambierò la scritta "THE END", che occupa 24 tiles. Ecco l'ordine con cui appare in TLP:
E' qui che entra in gioco la finestra Tile Arranger. Trascinateci sopra i tiles uno ad uno in modo di avere l'immagine sensata.
Ed ora, con minuzia certosina, proviamo a cambiare pixel per pixel, tile per tile, almeno la prima lettera. Non vorrei perdere troppo tempo in questo caso perché credo che probabilmente non tradurrò "THE END" (è più cinematografico :)
So benissimo che quella F fa un pò schifo, ma è solo per rendere l'idea...ed è con questo insolito "FHE END" che chiudo questa piccola guida. Vi lascio all'unica (per ora) appendice.
Appendice A: I font 8X16
In questa sezione affronterò un caso specifico di font 8X16. Ho inserito questo argomento in un'appendice perchè non insegno niente, ma parlo soltanto di un'esperienza personale. Dovrebbe comunque essere utile, se non altro per vedere da dove iniziare nel caso incontraste una rom simile.
La rom in questione è Ufouria. Questa traduzione mi ha dato diversi grattacapi proprio per queste lettere giganti (utilizzate nell'inventario) che non riuscivo a trovare in modo alcuno. La cosa esilarante è stata che, per un lungo periodo, non avevo neanche lontanamente pensato alla utilissima funzione del NESticle per vedere le Pattern Tables (vedi §1)... un giorno, dopo aver avuto il colpo di genio (...) il mio cervello-database di documenti sul rom hacking si è ricordato di suddetta funzione. Avevo già trovato la grafica del font nella rom, che sul TLP si presentava così:
Non è la cosa più invitante che si possa trovare, ma una volta avuto il codice hex di ogni tile ero contento come una pasqua e pronto anche al lavoro più noioso. La struttura di ogni lettera era quindi composta da due codici esadecimali, uno per il tile superiore ed uno per il tile inferiore. C'erano alcune lettere con tile in comune, come la "T" e la "I" (tile inferiore), o la "E" e la "F" (tile superiore). Da notare che non tutte le lettere dell'alfabeto erano presenti, cosicchè ho dovuto toglierne alcune che non servivano (come la "Y"), e aggiungerne altre più utili (come la "G"). Se vi chiedete come ho fatto a togliere ed aggiungere lettere, allora non avete letto tutta la guida :)
Ma come sono gestite le lettere da due tile in Ufouria? Vengono stampate per righe. Cioè, nella rom sono presenti prima i codici esadecimali dei tile superiori, seguiti da un carattere di ritorno a capo (o comunque di fine linea), a sua volta seguito dai codici delle tile inferiori. Ecco un esempio nel quale faccio vedere il dump esadecimale della parte dell'inventario in cui vengono visualizzate le parole "VITA" e "CHIAVI" (vedi immagine):
1101 2121 8270 80F0 2121 2121 2121 21D0 8270 F082 7021 2131 0000
1101 2121 8371 71F1 2121 2121 2121 21D1 C371 F183 7121 2131 0000
Ecco le spiegazioni di alcuni codici: il codice 1101 suppongo significhi l'inizio della stringa, mentre sicuramente 0000 ne indica la fine. 21 indica lo spazio, mentre tutti gli altri sono i codici delle lettere. Ad esempio, 82 rappresenta il tile superiore della "V" e della "H", mentre 83 il tile inferiore della "V". Non dovrebbe esservi difficile capire i codici di tutte le altre lettere.
Contatti
Potete scrivermi per errori, cavolate, o precisazioni a schneiderdark@tiscalinet.it, oppure nel canale #traduzioni sul server irc.ircd.it su irc (non sempre).
Ringraziamenti
Ringrazio innanzitutto chi farà uso di questa guida e ne trarrà beneficio. ^_^
Il solito Clomax, per ospitarmi nel suo staff ormai da diverso tempo.
Il solito forum Traduzioni di Emuita.it, ormai tappa fissa di tutti i giorni (e anche di più).
Gli Iced Earth, che mi hanno tenuto compagnia con la loro musica durante tutto il tempo della stesura della guida.
HEAVY METAL IS THE LAW.
Aggiunte alla versione 0.7
Mattia di TraduGames per aver pubblicato questo documento sul suo sito di traduzioni.
Cyan, Dewos e gli altri che mi hanno informato sui vari errori di ortografia e di esposizione.